home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / ContentModelQlicker$CMDocument.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  3.1 KB  |  125 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.xml.DTDParser;
  4. import java.util.Enumeration;
  5. import javax.swing.text.AbstractDocument;
  6. import javax.swing.text.AttributeSet;
  7. import javax.swing.text.BadLocationException;
  8. import javax.swing.text.DefaultStyledDocument;
  9.  
  10. public class ContentModelQlicker$CMDocument extends DefaultStyledDocument {
  11.    // $FF: synthetic field
  12.    final ContentModelQlicker this$0;
  13.  
  14.    public ContentModelQlicker$CMDocument(ContentModelQlicker var1) {
  15.       this.this$0 = var1;
  16.    }
  17.  
  18.    public void hopTerm(int var1, AttributeSet var2) throws BadLocationException {
  19.       boolean var5 = false;
  20.       boolean var6 = false;
  21.       int var7 = var1 + this.this$0.textLastSelected.length();
  22.       super.insertString(var1, this.this$0.textLastSelected, var2);
  23.       int var9 = ((AbstractDocument)this).getLength();
  24.  
  25.       int var4;
  26.       for(var4 = var7 + 1; var4 < var9; ++var4) {
  27.          char var3 = ((AbstractDocument)this).getText(var4, 1).charAt(0);
  28.          if (DTDParser.isConnectorChar(var3)) {
  29.             var5 = true;
  30.             break;
  31.          }
  32.  
  33.          if (!DTDParser.isNameChar(var3) && var3 != '(') {
  34.             var6 = true;
  35.          } else if (var6) {
  36.             break;
  37.          }
  38.       }
  39.  
  40.       if (!var5) {
  41.          char var14 = this.this$0.getConnector(this.this$0.getText(), var1, var7);
  42.          super.insertString(var7, String.valueOf(var14).concat(String.valueOf(" ")), var2);
  43.          this.this$0.setCaretPosition(var7 + 2);
  44.       } else {
  45.          while(var4 < var9) {
  46.             char var12 = this.this$0.getText(var4, 1).charAt(0);
  47.             if (var12 == '(' || DTDParser.isNameChar(var12)) {
  48.                break;
  49.             }
  50.  
  51.             ++var4;
  52.          }
  53.  
  54.          int var10 = var4;
  55.  
  56.          for(int var11 = 0; var4 < var9; ++var4) {
  57.             char var13 = ((AbstractDocument)this).getText(var4, 1).charAt(0);
  58.             if (var13 == '(') {
  59.                ++var11;
  60.             } else {
  61.                if (var13 == ')') {
  62.                   --var11;
  63.                   if (var11 == 0) {
  64.                      break;
  65.                   }
  66.                }
  67.  
  68.                if (!DTDParser.isNameChar(var13) && var11 == 0) {
  69.                   break;
  70.                }
  71.             }
  72.          }
  73.  
  74.          this.this$0.select(var10, var4);
  75.       }
  76.  
  77.    }
  78.  
  79.    public void replaceString(int var1, int var2, String var3) throws BadLocationException {
  80.       ((AbstractDocument)this).remove(var1, var2);
  81.       this.insertString(var1, var3, (AttributeSet)null);
  82.    }
  83.  
  84.    public void insertString(int var1, String var2, AttributeSet var3) throws BadLocationException {
  85.       if (var2.length() != 1) {
  86.          super.insertString(var1, var2, var3);
  87.       } else {
  88.          char var4 = var2.charAt(0);
  89.          if (var4 == '\t') {
  90.             this.hopTerm(var1, var3);
  91.          } else {
  92.             super.insertString(var1, var2, var3);
  93.             this.this$0.textLastSelected = "";
  94.             if (var4 == '(') {
  95.                super.insertString(var1 + 1, ")", var3);
  96.                this.this$0.setCaretPosition(var1 + 1);
  97.             } else if (DTDParser.isNameChar(var4) && (var1 + 1 >= ((AbstractDocument)this).getLength() || !DTDParser.isNameChar(((AbstractDocument)this).getText(var1 + 1, 1).charAt(0)))) {
  98.                int var5;
  99.                for(var5 = var1; var5 >= 0; --var5) {
  100.                   char var6 = ((AbstractDocument)this).getText(var5, 1).charAt(0);
  101.                   if (!DTDParser.isNameChar(var6) && var6 != '%') {
  102.                      break;
  103.                   }
  104.                }
  105.  
  106.                String var11 = ((AbstractDocument)this).getText(var5 + 1, var1 - var5);
  107.                Enumeration var7 = (Enumeration)this.this$0.getDataSource().getQlickerData(this.this$0.mode == 1 ? "TYPES" : "AUTO_COMPLETE", Class.forName("java.util.Enumeration"));
  108.  
  109.                while(var7.hasMoreElements()) {
  110.                   String var8 = (String)var7.nextElement();
  111.                   String var9 = var8.substring(0, Math.min(var11.length(), var8.length()));
  112.                   if (var11.equals(var9)) {
  113.                      String var10 = var8.substring(var11.length());
  114.                      super.insertString(var1 + 1, var10, var3);
  115.                      this.this$0.select(var1 + 1, var1 + 1 + var10.length());
  116.                      return;
  117.                   }
  118.                }
  119.             }
  120.  
  121.          }
  122.       }
  123.    }
  124. }
  125.